<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // var a = 123
    // let a = 123
    // const b = 234
    // {
      // console.log(a)
      // var a = 123
      // var a;
      // console.log(a)
      // a = 123
    // }
    // console.log(a)
    // 当我们声明一个变量的时候 如果没有赋值 他的默认值就是undefined
    // let 声明的变量会将当前代码块变成一个暂时性的死区 在这个区域内 不存在变量提升 也不能在声明之前使用变量
    // const 声明的是一个常量会将当前代码块变成一个暂时性的死区 在这个区域内 不存在变量提升 也不能在声明之前使用变量
    // const 声明的数据必须有默认值 常量不能重新赋值
    {
      // console.log(a)
      // let a = 123
      // console.log(a)
      // a = 234
      // console.log(a)
      // let a;
      // console.log(a)
      // console.log(a)
      // const a = 123
      // console.log(a)
      // const a; // 错误写法
      // console.log(a)
      // a = 234 // 
      const obj = {
        name: 'zhangsan'
      }
      // obj.name = '李四'
      // console.log(obj)
      obj = {}
    }
    // console.log(a)
    
  </script>
</body>
</html>